package com.fdb.efp.esb.service.bo.req.psd;

import com.alibaba.fastjson.annotation.JSONField;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.UUID;

public class PsdSendMsgToTaxReqBean implements Serializable {

    /**
     * 时间戳
     **/
    @JSONField(name = "Tmstmp")
    private String Tmstmp = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

    /**
     * 交易流水号
     **/
    @JSONField(name = "TxnSrlNo")
    private String TxnSrlNo = UUID.randomUUID().toString().replaceAll("-", "").toUpperCase();

    /**
     * 纳税人识别号
     **/
    @JSONField(name = "TaxpyrIdntfNo")
    private String taxpyrIdntfNo;

    /**
     * 登记序号
     **/
    @JSONField(name = "RgstSrlNo")
    private String rgstSrlNo;

    /**
     * 用户名
     **/
    @JSONField(name = "UsrNm")
    private String usrNm;

    /**
     * 授权密码
     **/
    @JSONField(name = "AuthPswd")
    private String authPswd;

    /**
     * 金融产品编号
     **/
    @JSONField(name = "FinPdNo")
    private String finPdNo;

    /**
     * 贷款金额
     **/
    @JSONField(name = "LoanAmt")
    private Double loanAmt;

    /**
     * 还款日期
     **/
    @JSONField(name = "RpymtDt")
    private String rpymtDt;

    /**
     * 授信失败原因描述
     **/
    @JSONField(name = "CrFailRsnDesc")
    private String crFailRsnDesc;

    /**
     * 授信额度
     **/
    @JSONField(name = "CrtLmt")
    private Double crtLmt;

    /**
     * 授信开始日
     **/
    @JSONField(name = "CrStrtDay")
    private String crStrtDay;

    /**
     * 授信标识
     **/
    @JSONField(name = "CrIndr")
    private String crIndr;

    /**
     * 不良客户标识
     **/
    @JSONField(name = "BadCustIndr")
    private String badCustIndr;

    /**
     * 贷款余额
     **/
    @JSONField(name = "LoanBal")
    private Double loanBal;
    /**
     * 授信到期日
     **/
    @JSONField(name = "CrMtrDt")
    private String crMtrDt;

    /**
     * 纯粹信用贷款标志	String(1)	N
     */
    @JSONField(name = "NetCrdtLoanFlg")
    private String netCrdtLoanFlg;

    /**
     * 首次贷款日期	String(8)	N
     */
    @JSONField(name = "FstCrdtDt")
    private String fstCrdtDt;

    /**
     * 贷款授信期限	String(10)	N
     */
    @JSONField(name = "LoanCrTrm")
    private String loanCrTrm;

    /**
     * 累计支用笔数	Double(10,0)	N
     */
    @JSONField(name = "AcmlnUseCnt")
    private String acmlnUseCnt;

    /**
     * 支用金额	Double(21,2)	N
     */
    @JSONField(name = "ExpnsUseAmt")
    private BigDecimal expnsUseAmt;

    /**
     * 贷款类型	String(7)	N
     */
    @JSONField(name = "LoanTp")
    private String loanTp;

    /**
     * 流水号
     */
    private String applySeq;

    public String getTmstmp() {
        return Tmstmp;
    }

    public void setTmstmp(String tmstmp) {
        Tmstmp = tmstmp;
    }

    public String getTxnSrlNo() {
        return TxnSrlNo;
    }

    public void setTxnSrlNo(String txnSrlNo) {
        TxnSrlNo = txnSrlNo;
    }

    public String getTaxpyrIdntfNo() {
        return taxpyrIdntfNo;
    }

    public void setTaxpyrIdntfNo(String taxpyrIdntfNo) {
        this.taxpyrIdntfNo = taxpyrIdntfNo;
    }

    public String getRgstSrlNo() {
        return rgstSrlNo;
    }

    public void setRgstSrlNo(String rgstSrlNo) {
        this.rgstSrlNo = rgstSrlNo;
    }

    public String getUsrNm() {
        return usrNm;
    }

    public void setUsrNm(String usrNm) {
        this.usrNm = usrNm;
    }

    public String getAuthPswd() {
        return authPswd;
    }

    public void setAuthPswd(String authPswd) {
        this.authPswd = authPswd;
    }

    public String getFinPdNo() {
        return finPdNo;
    }

    public void setFinPdNo(String finPdNo) {
        this.finPdNo = finPdNo;
    }

    public Double getLoanAmt() {
        return loanAmt;
    }

    public void setLoanAmt(Double loanAmt) {
        this.loanAmt = loanAmt;
    }

    public String getRpymtDt() {
        return rpymtDt;
    }

    public void setRpymtDt(String rpymtDt) {
        this.rpymtDt = rpymtDt;
    }

    public String getCrFailRsnDesc() {
        return crFailRsnDesc;
    }

    public void setCrFailRsnDesc(String crFailRsnDesc) {
        this.crFailRsnDesc = crFailRsnDesc;
    }

    public Double getCrtLmt() {
        return crtLmt;
    }

    public void setCrtLmt(Double crtLmt) {
        this.crtLmt = crtLmt;
    }

    public String getCrStrtDay() {
        return crStrtDay;
    }

    public void setCrStrtDay(String crStrtDay) {
        this.crStrtDay = crStrtDay;
    }

    public String getCrIndr() {
        return crIndr;
    }

    public void setCrIndr(String crIndr) {
        this.crIndr = crIndr;
    }

    public String getBadCustIndr() {
        return badCustIndr;
    }

    public void setBadCustIndr(String badCustIndr) {
        this.badCustIndr = badCustIndr;
    }

    public Double getLoanBal() {
        return loanBal;
    }

    public void setLoanBal(Double loanBal) {
        this.loanBal = loanBal;
    }

    public String getCrMtrDt() {
        return crMtrDt;
    }

    public void setCrMtrDt(String crMtrDt) {
        this.crMtrDt = crMtrDt;
    }

    public String getNetCrdtLoanFlg() {
        return netCrdtLoanFlg;
    }

    public void setNetCrdtLoanFlg(String netCrdtLoanFlg) {
        this.netCrdtLoanFlg = netCrdtLoanFlg;
    }

    public String getFstCrdtDt() {
        return fstCrdtDt;
    }

    public void setFstCrdtDt(String fstCrdtDt) {
        this.fstCrdtDt = fstCrdtDt;
    }

    public String getLoanCrTrm() {
        return loanCrTrm;
    }

    public void setLoanCrTrm(String loanCrTrm) {
        this.loanCrTrm = loanCrTrm;
    }

    public String getAcmlnUseCnt() {
        return acmlnUseCnt;
    }

    public void setAcmlnUseCnt(String acmlnUseCnt) {
        this.acmlnUseCnt = acmlnUseCnt;
    }

    public BigDecimal getExpnsUseAmt() {
        return expnsUseAmt;
    }

    public void setExpnsUseAmt(BigDecimal expnsUseAmt) {
        this.expnsUseAmt = expnsUseAmt;
    }

    public String getLoanTp() {
        return loanTp;
    }

    public void setLoanTp(String loanTp) {
        this.loanTp = loanTp;
    }

    public String getApplySeq() {
        return applySeq;
    }

    public void setApplySeq(String applySeq) {
        this.applySeq = applySeq;
    }
}
